package com.menu.system.mapper;

import com.menu.system.domain.MenuProducts;
import com.menu.system.domain.vo.ProductHeartbeatVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 角色信息Mapper接口
 *
 * @author ruoyi
 * @date 2024-06-05
 */
public interface MenuProductsMapper {
    /**
     * 查询角色信息
     *
     * @param productId 角色信息主键
     * @return 角色信息
     */
    public MenuProducts selectMenuProductsByProductId(Long productId);

    /**
     * 查询角色信息列表
     *
     * @param menuProducts 角色信息
     * @return 角色信息集合
     */

    public List<MenuProducts> selectMenuProductsList(MenuProducts menuProducts);


    public List<MenuProducts> selectMenuProductsListRole(MenuProducts menuProducts);
    /**
     * 新增角色信息
     *
     * @param menuProducts 角色信息
     * @return 结果
     */
    public int insertMenuProducts(MenuProducts menuProducts);

    /**
     * 修改角色信息
     *
     * @param menuProducts 角色信息
     * @return 结果
     */
    public int updateMenuProducts(MenuProducts menuProducts);

    /**
     * 删除角色信息
     *
     * @param productId 角色信息主键
     * @return 结果
     */
    public int deleteMenuProductsByProductId(Long productId);

    public int deletemenuproductHeartbeatproducts(Long productId);

    /**
     * 批量删除角色信息
     *
     * @param productIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMenuProductsByProductIds(Long[] productIds);

    public List<MenuProducts> selectMenuProductsLists(MenuProducts menuProducts);

    //查询等级类别
    /*导出execl*/
    public List<MenuProducts> selectMenuProductsListExecl(MenuProducts menuProducts);



    /*批量增加产品推荐*/
    public List<Long>  findMenuHeartbeatproducts(Long productId);


    public int batchMenuHeartbeatproducts(List<ProductHeartbeatVo> productHeartbeatVos);

    public int batchMenuProductRoles(@Param("productId")Long productId,@Param("roleId") Long roleId );
    /*删除角色与产品*/
    public int  deleteMenuProductRoles(Long productId);
    public int  updateMenuProductRoles(Long newProductId, Long productId);

    /*查询自定义*/
    public List<String> queryUserDefinedConditions();

    public List<Long> queryUserProduct(Long productId);



}
